XSS (Cross-Site Scripting) এবং CSRF (Cross-Site Request Forgery) হল দুটি সাধারণ নিরাপত্তা হুমকি, যা ওয়েব অ্যাপ্লিকেশনে আক্রমণকারী দ্বারা করা হতে পারে। CodeIgniter এই দুটি আক্রমণ থেকে সুরক্ষা দেওয়ার জন্য বিভিন্ন বিল্ট-ইন ফিচার সরবরাহ করে।
XSS আক্রমণে, আক্রমণকারী ম্যালিশিয়াস স্ক্রিপ্ট কোড ব্যবহারকারীর ব্রাউজারে চালানোর জন্য একটি ওয়েব অ্যাপ্লিকেশনকে প্রভাবিত করে। এটি ব্যবহারকারীর সেশন, কুকি, বা অন্যান্য গুরুত্বপূর্ণ তথ্য চুরি করার জন্য ব্যবহৃত হতে পারে।
CodeIgniter-এ XSS Filtering ফিচারটি বিল্ট-ইনভাবে রয়েছে, যা ইউজার ইনপুটে ম্যালিশিয়াস স্ক্রিপ্ট ইনজেকশন ব্লক করতে সহায়তা করে।
CodeIgniter-এর Security
ক্লাসে XSS ফিল্টারিং চালু করা থাকে, তবে এটি ইনপুটে ম্যালিশিয়াস কোড থাকার ক্ষেত্রে তা ফিল্টার করে।
xss_clean()
ফাংশন ব্যবহার:$clean_input = $this->security->xss_clean($this->request->getPost('user_input'));
form_open()
ফর্ম হেল্পার ব্যবহার করার সময় xss_clean()
চালানো যাবে।$clean_input = $this->security->xss_clean($this->request->getPost('input_field'));
CSRF আক্রমণ ব্যবহারকারীর অনুমতি ছাড়া তার ব্রাউজারের মাধ্যমে একটি অনিচ্ছাকৃত রিকোয়েস্ট পাঠানোর মাধ্যমে ঘটে। এটি সাইটের ব্যবহারকারীর সেশনের অধিকার নিয়ে আক্রমণকারী গোপনে কোনো অনুকূল অ্যাকশন সম্পাদন করতে পারে।
CodeIgniter ডিফল্টভাবে CSRF Protection সক্রিয় করে, তবে এটি কনফিগার করা বা কাস্টমাইজও করা যেতে পারে। CSRF সুরক্ষা নিশ্চিত করার জন্য, CodeIgniter টোকেন ব্যবহার করে, যা ফর্ম সাবমিশনের সময় যাচাই করে।
CSRF
ফিচার কনফিগারেশন: app/Config/Security.php
ফাইলে CSRF সুরক্ষা সক্ষম করার জন্য নিচের মত কনফিগার করুন।public $CSRFProtection = true; // CSRF সুরক্ষা সক্রিয়
public $csrfTokenName = 'csrf_test_name'; // CSRF টোকেনের নাম
public $csrfHeaderName = 'X-CSRF-TOKEN'; // CSRF টোকেন হেডার
public $csrfExpire = 7200; // CSRF টোকেনের মেয়াদ
csrf_token()
এবং csrf_hash()
ব্যবহার:// CSRF টোকেন ইনপুট ফর্মে অ্যাড করা
echo form_open('your/form/action');
echo form_input(['name' => 'username', 'value' => '']);
echo form_submit('submit', 'Submit');
echo csrf_field(); // CSRF টোকেন ফর্মে অ্যাড করা
echo form_close();
csrf_field()
ফাংশনটি স্বয়ংক্রিয়ভাবে CSRF টোকেন ইনপুট হিসেবে HTML ফর্মে যোগ করবে।CodeIgniter স্বয়ংক্রিয়ভাবে POST রিকোয়েস্টের CSRF টোকেন যাচাই করে, তবে আপনি চাইলে csrf_verify()
ফাংশন ব্যবহার করে ম্যানুয়ালি যাচাই করতে পারেন।
if (!$this->security->csrf_verify()) {
echo 'Invalid CSRF Token';
}
xss_clean()
মেথড প্রদান করে, যা ইনপুট ডেটাতে যেকোনো স্ক্রিপ্ট ফিল্টার করে।Read more